// (C) Szymon Piechowicz, February 2012

#ifndef __COMMON_H__
#define __COMMON_H__


#include <stdbool.h>
#include <stdint.h>
#include <avr/io.h>


#ifndef NULL
#define NULL (void *)0
#endif

// Usage sample: PORT_DIR_IN(DDRA, PA0);
#define PORT_DIR_IN(PORT, BIT) PORT &= ~(1 << BIT)
#define PORT_DIR_OUT(PORT, BIT) PORT |= (1 << BIT)

// Usage sample: PORT_ON(PORTA, PA0);
#define PORT_ON(PORT, BIT) PORT |= (1 << BIT)
#define PORT_OFF(PORT, BIT) PORT &= ~(1 << BIT)
#define PORT_TOGGLE(PORT, BIT) PORT ^= (1 << BIT)

// Usage sample: PORT_GET(PINA, PA0);
#define PORT_GET(PORT, BIT) ((PORT & (1 << BIT)) >> BIT)


#endif